<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>

  <body>
    <script>
      // function fn(n) {
      //   if (n == 1) {
      //     return 1;
      //   }
      //   return n * fn(n - 1);
      // }
      // console.log(fn(3));

      function fn(n) {
        if (n === 1) return 1;
        return n * fn(n - 1);
      }
      // 实现思路
      // fn(3)=3* fn(2);
      // fn(2)=2*fn(1)
      // fn(1)=1
      //3*(2*fn(1))

      //斐波那契数列 1 1 2 3 5 8 13 21
      function fb(n) {
        if (n == 1 || n == 2) {
          return 1;
        }
        return fb(n - 1) + fb(n - 2);
      }
      console.log(fb(6));

      //         /*实现过程
      //         fb(5)   +      fb(4);

      //         ((fb(4))+fb(3)) +((fb(3))+fb(2));

      //        fb(4)=((fb(3))+fb(2))  +   fb(3)=((fb(2))+fb(1))   +
      //        fb(3)=((fb(2))+fb(1)) +
      //        fb(2=) 1
      // 可得出
      // fb(1)=1
      // fb(2)=1
      // fb(3)=2
      // fb(4)=3
      // fb(5)=5
      // 最后 fb(5)+fb(4) =8

      const data = [
        {
          id: 1,
          name: "衣服",
          goods: [
            {
              id: 11,
              name: "羽绒服",
              goods: [
                {
                  id: 111,
                  name: "波司登",
                },
                {
                  id: 112,
                  name: "大鹅",
                },
              ],
            },
            {
              id: 12,
              name: "贸易",
            },
          ],
        },
      ];
      function getDataById(arr, id) {
        let o = {};
        arr.forEach((item) => {
          if (item.id === id) {
            o = item;
          } else if (item.goods && item.goods.length > 0) {
            console.log(item.goods);
            o = getDataById(item.goods, id);
          }
        });
        return o;
      }
      console.log(getDataById(data, 11));
    </script>
  </body>
</html>
